# 模块导入
from . import Product
from . import database


# Product表的mapper
class ProductMapper:
    # query
    # 根据id查找Product项
    @staticmethod
    def query_product_id(product_id):
        return Product.query.get(product_id)

    # 查找product列表
    @staticmethod
    def query_all():
        return Product.query.filter().all()

    # 根据小类名称product_name查询（列表）
    @staticmethod
    def query_product_name(product_name):
        return Product.query.filter_by(product_name=product_name).all()
        # 同样的，在需要列表的时候，可以使用 .all 方法来获得列表

    # 根据小类名称product_name模糊查询（列表）
    @staticmethod
    def query_product_name_like(keyword):
        return Product.query.filter(Product.product_name.like('%' + keyword + '%')).all()

    # 根据大类id category查询（列表）
    @staticmethod
    def query_category(category):
        return Product.query.filter_by(category=category).all()
        # 同样的，在需要列表的时候，可以使用 .all 方法来获得列表

    # insert
    # 增加一个product项
    @staticmethod
    def insert(product_name, category):
        product = Product(product_name=product_name, category_id=category)
        database.session.add(product)
        database.session.commit()
        return "insert success"

    # update
    # 更新product项
    @staticmethod
    def update(product_id, product_name, category):
        product = Product.query.get(product_id)
        product.product_name = product_name
        product.category_id = category
        database.session.commit()
        return "update success"

    # delete
    # 删除product项
    @staticmethod
    def delete(id):
        product = Product.query.get(id)
        database.session.delete(product)
        database.session.commit()
        return "delete success"
